package com.ruoyi.depot.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.depot.domain.Receipt;
import com.ruoyi.depot.domain.vo.OrdersProductVO;

/**
 * 收货单Service接口
 * 
 * @author ruoyi
 * @date 2023-12-26
 */
public interface IReceiptService  extends IService<Receipt>
{
    /**
     * 查询收货单
     * 
     * @param receiptId 收货单主键
     * @return 收货单
     */
    public Receipt selectReceiptByReceiptId(String receiptId);

    /**
     * 查询收货单列表
     *
     * @param receipt 收货单
     * @return 收货单集合
     */
    public List<Receipt> selectReceiptList(Receipt receipt);

    /**
     * 新增收货单
     * 
     * @param receipt 收货单
     * @return 结果
     */
    public int insertReceipt(Receipt receipt);

    /**
     * 修改收货单
     * 
     * @param receipt 收货单
     * @return 结果
     */
    public int updateReceipt(Receipt receipt);

    /**
     * 批量删除收货单
     * 
     * @param receiptIds 需要删除的收货单主键集合
     * @return 结果
     */
    public int deleteReceiptByReceiptIds(String[] receiptIds);

    /**
     * 删除收货单信息
     * 
     * @param receiptId 收货单主键
     * @return 结果
     */
    public int deleteReceiptByReceiptId(String receiptId);

    /**
     * 确认收货
     *
     * @param receipt 收货单
     * @return 结果
     */
    public int updateReceiptConfirm(Receipt receipt);

    /**
     * 查询收货单是否可以进行收货
     * @param receiptId
     * @return
     */
    public int validateBeforeReceiving(String receiptId);

    /**
     * 批量新增收货单
     * @param receipt
     * @return
     */
	int insertReceiptsBatch(List<Receipt> receipt);

    /**
     * 查询库存待检量详细
     *
     * @param productId
     * @return
     */
    List<OrdersProductVO> openInspectionQuantityDialog(OrdersProductVO productId);

    /**
     * 点击修改按钮时查询详细信息
     *
     * @param receiptId
     * @return
     */
    Receipt selectUpdateReceiptByReceiptId(String receiptId);
}
